/*
 * Copyright 2012-2014 the original author or authors.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */
package com.jqd.framework.core.hessian.biz.action.support.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.stereotype.Component;

/**
 * 
 * TODO
 * 
 * @author liaozhicheng.cn@gmail.com
 * @date 2012-6-11
 * @since 1.0
 * @see org.springframework.context.annotation.AnnotationConfigApplicationContext
 * @see org.springframework.context.annotation.Configuration
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Component
public @interface ActionHandler {
	
	/**
	 * 由于该注解本身被{@link org.springframework.context.annotation.Configuration}注解注释，所以
	 * spring容器启动的时候，会将所有被{@link ActionHandler}注解的类注册到spring容器中，注册时默认的beanName为
	 * 该类的简单类名第一个字母小写，当然可以改变spring容器生成类名的策略，详见
	 * {@link com.prs.framework.core.context.ClassFullNameGenerator}
	 * 
	 * 用户可以通过给该注解设置value属性来指定注册到spring容器中beanName，如果不设置该属性默认仍采用简单类名第一个字母小写为beanName
	 * 
	 * @return spring容器中对应bean的beanName
	 */
	String value() default "";
	
}
